package com.hengli.service;


import com.hengli.dto.WineDTO;
import com.hengli.dto.WinePageQueryDTO;
import com.hengli.entity.Wine;
import com.hengli.result.PageResult;
import com.hengli.vo.WineVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author ljx
 * @date 2024/3/24 15:25
 */
public interface WineService {

    /**
     * 新增新增酒品及规格
     * @param wineDTO
     */
    public void saveWithSpecification(WineDTO wineDTO);

    /**
     * 酒品分页查询
     *
     * @param winePageQueryDTO
     * @return
     */
    PageResult pageQuery(WinePageQueryDTO winePageQueryDTO);

    /**
     * 酒品批量删除
     *
     * @param ids
     */
    void deleteBatch(List<Long> ids);
    
    /**
     * 根据id查询酒品和对应的规格数据
     *
     * @param id
     * @return
     */
    WineVO getByIdWithSpecification(Long id);

    /**
     * 根据id修改酒品基本信息和对应的规格信息
     *
     * @param wineDTO
     */
    void updateWithSpecification(WineDTO wineDTO);

    /**
     * 起售停售
     *
     * @param status
     * @param id
     */
    void startOrStop(Integer status, Long id);

    /**
     * 根据id查询酒品
     *
     * @param id
     * @return
     */
    List<Wine> list(Integer id);

    /**
     * 条件查询酒品和规格
     * @param wine
     * @return
     */
    List<WineVO> listWithSpecification(Wine wine);
}
